﻿using System;
using System.ComponentModel;
using System.Collections.Generic;

namespace S.Sams.GoogleMap
{
    /// <summary>
    /// 设置地图标注点
    /// </summary>
    [Serializable]
    public class Label
    {
        /// <summary>
        /// 设置标注名称(主要用于javascript调用名称识别)
        /// </summary>
        public string Name
        {
            get;
            set;
        }

        /// <summary>
        /// 设置在标注点消息(支持HTML编码)
        /// </summary>
        public string Msg
        {
            get;
            set;
        }

        /// <summary>
        /// 设置在标注点消息(支持HTML编码), 支持消息窗口放大后显示的内容
        /// </summary>
        public string MsgMaxContent
        {
            get;
            set;
        }

        /// <summary>
        /// 设置在标注点消息(支持HTML编码), 支持消息窗口放大后显示的标题
        /// </summary>
        public string MsgMaxTitle
        {
            get;
            set;
        }

        /// <summary>
        /// 设置 Tab 标注集 标题/内容, 支持HTML编码(TabMsg优先级高于Msg,设置了TabMsg, Msg将无效)
        /// </summary>
        public List<Msg> TabMsg
        {
            get;
            set;
        }

        private bool _isshowmapview = false;
        /// <summary>
        /// 启用在标注消息框中显示放大的地图预览(默认: False), 如果该项启用 Msg / TabMsg 将无效!
        /// </summary>
        public bool IsShowMapView
        {
            get { return _isshowmapview; }
            set { _isshowmapview = value; }
        }

        /// <summary>
        /// 地球坐标 X , latitude: 纬度[必填]
        /// </summary>
        public double X
        {
            get;
            set;
        }

        /// <summary>
        /// 地球坐标 Y , longitude: 经度[必填]
        /// </summary>
        public double Y
        {
            get;
            set;
        }

        /// <summary>
        /// 设置地图标注点图片, 默认使用系统图片
        /// </summary>
        public string LabelImage
        {
            get;
            set;
        }


        private int _zoomin = 0;
        /// <summary>
        /// 地图显示的放大系数,  范围一般在 1-17 之间, 0为不指定放大系统, 以当前系统数为准
        /// </summary>
        public int ZoomIn
        {
            get { return _zoomin; }
            set { _zoomin = value; }
        }

        private bool _iscenter = false;
        /// <summary>
        /// 是否将该标注点设置为中心
        /// 在 List＜T＞时(请保持唯一性,如果存在多个设置只有第一个生效)
        /// </summary>
        public bool IsCenter
        {
            get { return _iscenter; }
            set { _iscenter = value; }
        }

        private bool _visible = true;
        /// <summary>
        /// 设置为可见或者隐藏
        /// </summary>
        public bool Visible
        {
            get { return _visible; }
            set { _visible = value; }
        }
    }
}
